package com.example.demo.service.impl;

import com.example.demo.model.User;
import com.example.demo.service.PermissionService;
import org.springframework.stereotype.Service;

/**
 * 权限服务实现类
 */
@Service
public class PermissionServiceImpl implements PermissionService {

    @Override
    public boolean hasPermission(User user, String permission) {
        // 管理员拥有所有权限
        if (user.isAdmin()) {
            return true;
        }
        
        // 基于简单实现，可以根据权限字符串进行判断
        // 实际项目中，这里通常会查询数据库中的用户-角色-权限关系
        switch (permission) {
            case "VIEW_ALL_DOCUMENTS":
                return false; // 只有管理员可以查看所有文档
            case "EDIT_ALL_DOCUMENTS":
                return false; // 只有管理员可以编辑所有文档
            case "DELETE_ALL_DOCUMENTS":
                return false; // 只有管理员可以删除所有文档
            case "ADMIN_CREATE_DOCUMENT":
                return true;  // 管理员可以创建文档
            case "USER_CREATE_DOCUMENT":
                return true;  // 普通用户可以创建自己的文档
            case "EDIT_OWN_DOCUMENTS":
                return true;  // 用户可以编辑自己的文档
            case "DELETE_OWN_DOCUMENTS":
                return true;  // 用户可以删除自己的文档
            default:
                return false; // 默认不允许
        }
    }
} 